Fatti

Parti e svolgimento del procedimento: I ricorrenti (convenuti 1 e 2) erano specialisti di software e nel 12 settembre 2001 hanno costituito, insieme ad altri soggetti, la [D. AG] con sede in [U.] . Il 30 aprile 2004 hanno stipulato contratti di lavoro con la società. La controparte, la [C. AG] , è creditrice cessionaria ai sensi dell'art. 260 LEF. Oggetto della causa è un'azione di responsabilità ai sensi del diritto della società per azioni.

Fatti: Nel 2004 la [D. AG] ha ricevuto un incarico per lavori sulla galleria del Lötschberg (incarico di base, Fr. 1'606'896.--). La committente [E.] ha conferito, tra il 2004 e il 2007, integrazioni d'incarico per un volume complessivo di Fr. 2'465'488.44. Il 5 novembre 2005 la [D. AG] ha trasferito una parte di tali integrazioni (Fr. 452'102.80) alla [I. AG] , allora non ancora costituita, e ha versato a quest'ultima complessivamente Fr. 1'980'348.10. È controverso se la [I. AG] , ovvero i suoi subappaltatori ([O. AG] , [P.] indonesiani), abbiano eseguito i lavori oppure se i ricorrenti stessi abbiano eseguito le integrazioni e i pagamenti fossero simulati.

Fallimento e cessione: Il 16 dicembre 2008 è stato dichiarato il fallimento della [D. AG] . La massa fallimentare ha ceduto le pretese ai sensi dell'art. 260 LEF a quattro creditori. Il 4 dicembre 2014 la [D. AG] è stata cancellata dal registro di commercio. Con decisione dell'8 novembre 2011 è stato accertato che la controparte conduce il processo come unica attrice.

Sentenza di primo grado (Tribunale cantonale di Sciaffusa, 11 luglio 2018): Le azioni contro i convenuti 3 ([I. AG] ) e 4 ([M. AG] ) sono state respinte. I ricorrenti sono stati condannati, in solido, al pagamento di Fr. 2'196'626.35 oltre interessi al 5% dal 31 dicembre 2007. Le spese processuali di Fr. 120'000.-- sono state poste per un sesto a carico dell'attrice e per cinque sesti a carico dei convenuti 1 e 2.

Sentenza d'appello (Tribunale superiore di Sciaffusa, 31 marzo 2020): L'appello dei ricorrenti è stato parzialmente accolto, limitatamente alle spese e alle ripetibili (cifre del dispositivo 1 a 3 e 5 a 6). Per il resto la pretesa è stata confermata: le integrazioni d'incarico sarebbero state eseguite dagli stessi ricorrenti; i pagamenti alla [I. AG] sarebbero stati simulati e costituirebbero un comportamento contrario ai doveri ai sensi dell'art. 717 cpv. 1 in combinato disposto con l'art. 754 cpv. 1 CO (pretesa di Fr. 1'980'348.--). Sono inoltre stati riconosciuti: Fr. 97'500.-- per un aumento salariale unilaterale senza il consenso del consiglio di amministrazione nel suo complesso, Fr. 33'778.35 per un bonus versato indebitamente e Fr. 85'000.-- per costi di trasporto privati per il percorso casa-lavoro, per un totale di Fr. 216'278.35.

Conclusioni dinanzi al Tribunale federale: I ricorrenti hanno chiesto l'annullamento della sentenza e il rigetto dell'azione, in via subordinata il rinvio all'autorità inferiore. La controparte e l'autorità inferiore hanno chiesto il rigetto del ricorso. È stata richiesta una deliberazione pubblica, che il Tribunale federale ha respinto. L'effetto sospensivo è stato concesso con decisione presidenziale del 5 agosto 2020.

Diritto

Sulla legittimazione attiva e sulla cancellazione dal registro di commercio (consid. 2): I ricorrenti hanno contestato la legittimazione attiva della controparte, sostenendo che, dopo la cancellazione dal registro di commercio, la società non sarebbe più titolare delle pretese e sarebbe necessaria una nuova iscrizione (rinvio alla sentenza 4A_384/2016). Il Tribunale federale ha rilevato che, dopo una cessione ai sensi dell'art. 260 LEF, la cancellazione della società non incide sulla legittimazione attiva dei creditori cessionari e non è necessaria una nuova iscrizione (sentenza 4A_19/2020 del 19 agosto 2020). Le obiezioni sono quindi infondate.

Sulle censure processuali (consid. 3): Il Tribunale federale esamina il diritto d'ufficio, ma soltanto le censure sufficientemente motivate (art. 106 cpv. 2 LTF, art. 42 cpv. 2 LTF). La censura di contrarietà agli atti e di accertamento incompleto dei fatti relativi a incarichi di ricerca (galleria del San Gottardo) è stata respinta, poiché le parti avevano fatto valere solo la galleria del Lötschberg. Le censure relative all'ordinanza probatoria incompleta sono fallite per mancanza di un pregiudizio materiale e per motivazione insufficiente. La mancata considerazione di una lettera del 6 settembre 2018 e dei bilanci annuali della [O. AG] è stata giustamente negata, poiché non compete al giudice ricercare la presentazione dei fatti negli allegati (sentenza 4A_447/2018 del 20 marzo 2019 consid. 5.1.2). Anche la censura relativa al mancato ammissione di domande integrative e alla considerazione del procedimento penale (art. 53 CO) è stata respinta perché insufficientemente sostanziata o di natura appellatoria.

Sull'onere della prova e sull'onere qualificato di contestazione (consid. 3.7): Può essere richiesta una contestazione qualificata quando la parte che contesta conosce i fatti dalle proprie azioni e sussiste un divario informativo (DTF 133 III 43 consid. 4.1). I ricorrenti erano gli unici collaboratori ad aver negoziato le integrazioni d'incarico e erano i principali obbligati alla loro esecuzione. Avrebbero quindi dovuto indicare in modo sostanziato chi aveva effettivamente eseguito i lavori. Poiché è stata menzionata soltanto la [P.] , la quale, incontestatamente, non era attiva, l'autorità inferiore poteva ritenere senza arbitrio che fossero stati i ricorrenti stessi a eseguire i lavori. La motivazione subordinata non doveva più essere esaminata.

Sulla responsabilità (consid. 4): La qualificazione come simulazione non è rilevante ai fini della responsabilità; decisivo è che i ricorrenti abbiano eseguito personalmente i lavori e che il compenso non sia pervenuto alla [D.] …