You are not likely to find an e46 in need of an engine overhaul because a naturally aspirated 6 cyl BMW engine is a 300k mile engine. You might find an M3 that missed one too many shifts, but on a budget, you should steer clear of M3s.
What you are likely to find is a car that is 8-10 years old with 100k miles that was allowed to run out of coolant when one of the cooling system components failed.
The difficulty is knowing whether they whole engine cooked (junk yard engine time) or whether they just warped the head. You would hate to replace the head only to discover that the rest of the engine is an anchor.
I don't know what you will have to pay, but if I were in that market, I would expect to pay about $5k for an otherwise clean e46 that would be $10k with a good engine. I far prefer 330s over 325s, but your best hope of finding a bargain will be a 325 because you are bidding against people who want to build track cars but don't want to waste a good BMW engine in the process.