не могу понять, как сделать так, чтобы при втором условии числа выводились от меньшего к большему
Представленный вами код делает именно это. Наверное, вместо "меньшего"/"большего" должно было быть написано "первого"/"второго". В любом случае, в двух циклах необходимости нет.
Вывод чисел от первого ко второму:
const step = Math.sign(p2 - p1);
while (Math.abs(p2 - p1) >= 1) {
p1 += step;
console.log(p1);
}
Вывод чисел от меньшего к большему:
[ p1, p2 ] = p1 > p2 ? [ p2, p1 ] : [ p1, p2 ];
while (p1 < p2) {
p1 += 1;
console.log(p1);
}