Я думаю, что отчасти проблема в том, что вы меняете определение firm
внутри for l oop, что не рекомендуется.
Я предполагаю, что вы можете искать что-то вроде это:
firms = ["A", "B", "C"]
for firm in firms:
some_plot_var = ...
some_plot_var.plot(title = "{f}_price".format(f=firm), ax=ax[0])
Это должно привести к заголовкам «A_price», «B_Price», «C_Price».