The U.S. House narrowly voted against Donald Trump's tariffs on Canada, in a rare rebuke of the President by members of his own party.