first off, there's always a "Table" available, since you can just make one ad hoc, using either Table with a throwaway MetaData, or you can use the lowercase versions (sqlalchemy.sql.table, sqlalchemy.sql.column) for something even more transitory. You only need those names that the SQL statement needs. Since you have a schema name here, probably need to use Table:
from sqlalchemy import Table, Column, Integer, String, MetaData
mytable = Table('mytable', MetaData(), Column('status_id', Integer), Column('statusname', String), schema="myschema")
Person.status_id.in_(select([mytable.c.status_id]).where(statusname='hired'))
but with that aside, you can use text():
from sqlalchemy import text, bindparam
Person.status_id.in_(text("select status_id ...", bindparams=[bindparam('n1', 'hired')]))
and the bind values you can add later too:
from sqlalchemy import text
Person.status_id.in_(text("select status_id ...")).params(n1='hired')