It is getting easier to get Canadian visa these days if you have a multiple US b2 visa. You might have to visit a Consulate in person. The same applies for Mexican visa. But it takes longer and normally they require you to have a valid US address (they will have to mail the passport and visa back to you.) And Mexican Consulate are notorious for their bad service.