No, you cannot call 03 numbers for free from an O2 mobile telephone, nor are these calls free for any other UK network operator.
Background on 03 numbers
03 numbers are used throughout the whole of the United Kingdom as customer service helplines, ways of contacting charitable organisations and public enquiry lines for government organisation. Although they have been in use since 2007 their popularity increased dramatically as a consequence of Ofcom legislation in July 2015 which outlawed the more expensive ‘service numbers’ (084 and 087 prefixes) from being used as post-sales customer service lines.
Cost of calling an 03 number from an O2 handset
O2 customers will have to pay a per-minute rate when calling 03 numbers as well as an access fee, which currently stands at 30p for Pay & Go tariffs and 35p for monthly contract holders. Alternatively you can avoid these charges if you have inclusive minutes remaining on your O2 tariff, however this is is still technically not free of charge as you will still lose these minutes from your balance.