I don't think you should buy a car specifically because it is good in snow. Buy the car that you can live with, with regards to its interior, exterior, performance, and reliability.
The Impreza is nice, and AWD sure is handy in the winter, but that comes at the cost of a crappier interior than its competition, and its a bit of a dog performance-wise. The Mazda 3 will have a nicer interior, and will have a little more get-up-and-go.
That being said, Mazdas are known to rust, and Quebec Mazda's would have been exposed to a TON of salt. So I would be VERY careful to check any potential car for any signs of rust. Check the wheel wells, the trunk lid, bottom of the doors, etc. And anywhere where to pieces of metal are joined together by a pinch weld.
A Corolla is never a bad choice, nor is a Civic. For the money, you'll be getting a slightly older, slightly higher mileage version of both, but they should be dead reliable for years to come. The Civic should be more entertaining than the Corolla.