Área de relleno de Matplotlib bajo la curva entre dos valores x solamente

Me gustaría llenar el área bajo una curva entre dos valores en el eje horizontal solamente. Lo intenté

import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm

x = np.linspace(-4,4, 10000)
nVals = [norm.pdf(i,0,1) for i in x]

line = plt.plot(x,nVals)

plt.fill_between(x,nVals,color = '#111111',where = x > -3 and x < -2)
plt.axis([-4,4,0,.5])
plt.show()

pero vuelve

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

No entiendo este mensaje; cuando corro

z = -2.5
print z > -3 and z < -2

Pitónhace entiendo a qué me refiero e imprime

True

Entonces, ¿por qué esto no funciona confill_between y como puedo resolver eso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta