I think the fault lies with the PhotoScan software, and not with pyproj or your code. (See this questionSee this question and this post from the Agisoft forums)
Like Andre, I tried several methods to convert WGS84 values -121.330272, 38.547287
into NAD27 / California Zone 2 coordinates.
WGS84 -> Null Shift -> NAD83 -> NADCON -> NAD27
(EPSG:15851)
WGS84 -> Null Shift -> NAD83(HARN) -> NADCON -> NAD83 -> NADCON -> NAD27
(EPSG:8593)
WGS84 -> Geocentric transform -> NAD27
(EPSG: 1173)
All of these methods produced produced coordinates that were ~2ft away from each other, but ~20ft away from the XY value that came from PhotoScan. I wouldn't trust the coordinates to be very accurate if you need to switch datums until they update the software.