No, 0845 numbers are not free to call on O2, nor are they free from any other network operator as these are classed as business-rate service numbers.
What are 0845 numbers?
0845 numbers are business-rate sales hotlines which are used by companies that do not wish to pay for the cost of calls to these numbers. They used to be far more prevalent however in July 2015 Ofcom banned their use as post-sales customer service helplines.
O2 call costs for 0845 numbers
Typically 0845 numbers carry a service charge of 7p per minute regardless of which network operator you are with, however there is also an access fee to consider which is substantially higher for mobile customers. For instance if you are a O2 Pay & Go customer you will pay an access charge of 45p, making the minimum call cost a total of 52p. This is even higher for O2 customers on a monthly contract as you will pay a minimum fee of 62p to call an 0845 number.