Ответ на ваш вопрос; если изображения имеют произвольную ширину, вы не можете прокрутить их с фиксированной шириной
Я думаю, что вам лучше всего смотреть в будущее и найти позицию x следующего объекта, а затем перейти к ней. В зависимости от вашей разметки может потребоваться отслеживать индекс объекта, который вы прокручиваете в вид.
Ваша следующая кнопка (и ваша следующая / предыдущая может быть такой же) будет выглядеть так:
$(".next").click(function() {
var targ = /** find out the next item to be shown **/
var left = $(targ).position().left;
$(".p_horizontal_wrap").animate({
scrollLeft: left
});
});