I think that it is possible. For your details, consider one of approaches:
create view MyView
as
with S1 as
(
select *, row_number() over (partition by main_id order by [timestamp] desc) as n from SecondaryTable1
),
S2 as
(
select *, row_number() over (partition by main_id order by [timestamp] desc) as n from SecondaryTable2
)
select MainTable.id -- ... the list of output columns from three tables
from MainTable
inner join S1 on S1.main_id = MainTable.id
inner join S2 on S2.main_id = MainTable.id
where S1.n = 1 and S2.n = 1
It shows one main table and two secondary joined tables, that have foreign keys (main_id) and timestamps.