Стандартный способ сделать это в Python - использовать timedelta.
Например:
from datetime import datetime, timedelta
now = datetime.now()
delta = timedelta(days=20)
then = now - delta
Таким образом, 1 вариант - преобразовать exp_date в datetime, вычесть timedelta и затем преобразоватьвернемся к дате собственности.
Я не использовал appengine, поэтому я не знаю, насколько это будет сложно.
edit : некоторые поиски показывают, что DateProperty на самом деле сохраняет значение какобъект datetime, поэтому он должен быть таким простым, как
query = db.GqlQuery("SELECT * FROM Medicine WHERE exp_date=:1", exp_date - timedelta(days=20) )