Your code is almost correct you need to pass ax into the plot function, likr this:
fig, ax = plt.subplots()
df.y_test.value_counts().plot(kind='bar', ax=ax)
df.y_pred.value_counts().plot(kind='bar', width=0.3, color='r', ax=ax)
for p in ax.patches:
ax.annotate(str(p.get_height()), (p.get_x() * 1.005, p.get_height() * 1.005))
plt.legend()
plt.show()
Output: