No the NHS do not subsidise heavily at all. For hundreds of dental surgeries what they get is less than the patient charge so , in effect, they have to pay back the NHS what is left over after treatment fee deducted from charge.
Dentists get no other money , all practice costs , materials, staff, training , building , indemnity comes out of what is earned seeing a patient.
In the U.K. per patient treated on the NHS , per year around £36 to £40 is spent. How much high quality dentistry will that buy? Could you get a car mechanic to do anything , or a plumber for that amount of money?
Most will get a pound or two on top of the patient charge , so for an extraction they will get £6 on top of patient charge if as part of a course of treatment or £2 extra if emergency treatment.
It costs , in a cheap area , upwards of £120 an hour to run one room in a practice that does NHS work , upwards of £200 an hour to run one room in a private practice. You can see why it is so difficult to cover costs in a NHS practice.