US President Donald Trump has ordered sweeping tariffs on goods from Mexico, Canada and China, demanding they curb the flow of illegal immigrants and fentanyl.