I would say if cost is your worry then how much longer will you be paying 350 a month and is it still under warranty?
350 X 12 = 4200 a year and if you are no longer under warranty then $$$$ for maintenance and repairs which will be at least as costly as the e46. If the car is almost paid off then i would stick with the e90.
The e46 will be costly at first but most parts you replace wont need attention for years and thousands of miles, maintenance can be done cheaply and easily. Depending on your state you may have to factor in sales tax and registration. Insurance should be cheaper.