US officials say 21 people have tested positive for coronavirus on the Grand Princess, which is being held off San Francisco with 3,500 people on board, including 140 Britons. US vice president Mike Pence says plans are being made to have the ship allowed to dock at a non-commercial port.