Aby wyśrodkować tekst wystarczy użyć text-align:center. Nie stosuje się na siłę pozycji absolutnej oraz ustawiania, gdzie konkretnie ma się znajdować ten tekst.
W Twoim przypadku oprócz szerokości diva dodałeś jeszcze szerokość do h2 oraz p, niepotrzebnie. Zostaw tylko tak i wszystko będzie w porządku:
.photo h2{
font-size: 36px;
font-weight: 300;
text-align: center;
color: #fefefe;
}
.photo p{
font-size: 21px;
text-align: center;
color: #fefefe;
}