Creo que esto debería funcionar (si entendí correctamente la estructura de su tabla).
Te animo a leer la documentación oficial de Laravel sobre Únete .
$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();