They are generated by calls suptitle(), and super-headers are the children of the object fig(and yes, they suptitle()were called 4 times, one from each subtitle).
To fix this:
df = pd.DataFrame({'Emission': np.random.random(12),
'Voltage': np.random.random(12),
'Power': np.repeat([10,20,40,60],3)})
fig = plt.figure(figsize=(16,9))
i = 0
for Power in [10, 20, 40, 60]:
i = i+1
ax = fig.add_subplot(2,2,i)
subdf = df[df.Power==Power]
bp = subdf.boxplot(column='Emission', by='Voltage', ax=ax)
fig.texts = []
plt.suptitle('Some title')
