It has been a long time since I have used tr:subform, but I think this
should work:
<tr:subform default="true" id="mainSubform">
<tr:panelLabelAndMessage for="streetText" label="Street/Number"
showRequired="true">
<tr:inputText id="streetText" simple="true" label="Street"
required="true"
value="#{oxViewController.applicant.street}"
partialTriggers="addressLink"/>
<tr:inputText simple="true" label="Number" columns="5"
required="true" inlineStyle="margin-left:3px;"
value="#{oxViewController.applicant.streetNumber}"
partialTriggers="addressLink"/>
<f:facet name="end">
<tr:subform id="addressSubform">
<tr:commandLink id="addressLink" action="dialog:address"
partialSubmit="true" useWindow="true"
windowWidth="600" windowHeight="745"
shortDesc="Search for address"
returnListener="#{oxViewController.addressLink_returnListener}">
<tr:image source="#{skinImages['button-lens.gif']}"/>
</tr:commandLink>
</tr:subform>
</f:facet>
</tr:panelLabelAndMessage>
<tr:inputText label="City"
value="#{oxViewController.applicant.city}"
columns="40" required="true"
partialTriggers="addressLink"/>
<tr:inputText label="Zip"
value="#{oxViewController.applicant.zip}"
columns="10" required="true"
partialTriggers="addressLink"/>
</tr:subform>