>>> because holiday companies put up the price of holidays when schools close for annual holidays
That's one way of looking at it but the holiday companies would argue that their July and August prices are there 'regular' ones and they're simply offering discounts to attract custom at other times when demand is lower.
Further, holiday companies don't necessarily make any greater profits from selling holidays in July and August than they do at other times. They have to pay the hoteliers, who charge far higher prices in July and August (because that's when nearly all European countries have their long school holidays). Again, the hoteliers would argue that the prices they charge in the summer are their 'normal' ones, with discounts offered during periods of low demand in order to fill their rooms
An obvious solution would be to shorten the British summer holidays to just three or four weeks, allowing more holiday time elsewhere (when children in other European countries are still at school), so that British families can take their holidays at off-peak times. Barnsley Council did exactly that last year, announcing that in future the summer holiday period would be shortened. However they've had to abandon that plan because the very same parents who would have benefited financially from the plan were, on the whole, bitterly opposed to it! (Several other local authorities have tried similar plans and they've all had to abandon them through pressure from parents).