Вы можете создать массив кортежей с возможными комбинациями p1 и p2 и выполнить итерацию по массиву, чтобы построить свой запрос и выполнить для каждого элемента в массиве.
Что-то вроде
val dateRanges : Array[(String,String)]= Array(("2005-01-01","2005-12-31"),
("2006-01-01","2006-12-31"))
dateRanges.foreach(//execute your method here)
Массив можно построить вручную или использовать функции даты, чтобы сложить / вычесть месяцы / годы из даты.