Princess Eugenie is ninth in line to the throne and carries out no royal duties.
She will marry Jack Brooksbank at St George’s Chapel in Windsor Castle – where Prince Harry wed Meghan Markle – on 12 October.
The wedding was initially expected to cost around £750,000 and was set to be paid for by the couple’s parents, but security costs have more than doubled it to almost £2m, according to the Daily Mirror.
A royal source told the newspaper: “The Duke of York has insisted his daughter’s wedding must be a huge occasion to be remembered and wants everyone to get on board to celebrate the happy couple.”
But in an interview with Sky News, Mr Williamson, MP for Derby North, said: “There is no need to have such a glamorous event.
“Prince Andrew – who is fabulously wealthy with an estimated worth of £65m – should foot the bill himself.
“Who’s heard of Princess Eugenie anyway? She carries no royal functions, no useful purpose to the public sphere and yet we’re having to spend this kind of money.”
The extra cash will reportedly fund more police officers on overtime rates. The increased presence is especially needed after Eugenie is understood to have demanded an open top carriage ride as part of the nuptials.
Emma Dent Coad, Labour MP for Kensington, where Eugenie and Mr Brooksbank live in Kensington Palace at a vastly reduced rent, also condemned the bill.
“In these times of heightened security risks it is irresponsible for a minor member of the royal family to have a high profile, very public wedding,” she said. “This may be the time to review the role and cost of minor royals.”
The controversy comes shortly after the princess said in a TV interview that she wanted to be seen as “real”.