Gold extended a three-day rally after President Donald Trump said he expected the US to end the war with Iran within two to three weeks.