First, 10W-30 is the wrong weight.
Next, the e46 requires oils with "BMW LL-01" approval.
These will usually have something like "European Car Formula" on the front label. Mobil 1, Castrol Edge, and Pennzoil Ultra come to mind as available at retail in the aftermarket (although I've only seen the first 2 in stores). This stuff is not cheap, even on sale.
I soon found that buying the BMW oil from a dealer is actually less costly (although it may not be as conveneint). With 2 e46s, changing the oil in both cars drains more than a case!