Eu acho que isso deve funcionar (se eu entendi a estrutura da sua tabela corretamente).
Recomendo que você leia a documentação oficial do Laravel em Joins .
$query = DB::table('projects')
->join('subprojects', 'projects.id', '=', 'subprojects.project_id')
->join('companies', 'projects.company_id', '=', 'companies.id')
->select('companies.company_name', 'projects.id', 'subprojects.id', 'subprojects.title')
->get();