It's just like what Matplotlib document says, which has also been mentioned in @afruzan's answer.
matplotlib.pyplot.subplot: Creating a new Axes will delete any pre-existing Axes that overlaps with it beyond sharing a boundary. If you do not want this behavior, use the Figure.add_subplot method or the pyplot.axes function instead.
To make it more clear, here is an illustration:
import matplotlib.pyplot as plt
fig = plt.figure()
fig.add_subplot(131, facecolor='red')
fig.add_subplot(132, facecolor='green')
fig.add_subplot(133, facecolor='blue')
fig.add_subplot(231, facecolor='cyan')
plt.show()

import matplotlib.pyplot as plt
fig = plt.figure()
fig.add_subplot(131, facecolor='red')
fig.add_subplot(132, facecolor='green')
fig.add_subplot(133, facecolor='blue')
plt.subplot(231, facecolor='cyan') # overlap with subplot generated by fig.add_subplot(131, facecolor='red'), so subplot generated by fig.add_subplot(131, facecolor='red') will be removed
plt.show()
