Вы можете использовать понимание словаря:
d = {0: -1.0, 21: 2.23, 7: 7.1, 46: -12.0}
d = {f"p{k}":v for k,v in d.items()}
print(d)
Вывод:
{'p0': -1.0, 'p21': 2.23, 'p7': 7.1, 'p46': -12.0}
Обратите внимание, что это тоже будет работать:
d = {f"p{k}":d[k] for k in d}