Non firmarlo subito se non sei d'accordo - è la cosa peggiore che puoi fare. Una volta che metti la firma, quella clausola è vincolante e diventa molto più difficile contestarla dopo. Quello che puoi fare è contrattare. Prima di rifiutare l'offerta, rispondi che accetti la posizione ma che la clausola ti pone problemi e chiedi di modificarla. Molte startup hanno clausole standard nei contratti che in realtà sono negoziabili, soprattutto se sei bravo nel tuo campo.
In Italia le non-compete hanno dei limiti legali: generalmente devono essere ragionevoli in termini di durata, area geografica e tipo di attività. Tre anni per chiunque nel settore IT è molto aggressivo. Prova a proporre alternative: magari una durata più breve (12-18 mesi), oppure un'area geografica limitata (Milano e zone limitrofe invece che tutta Italia), oppure ancora più specifico (non puoi lavorare solo per competitor diretto, non per chiunque faccia IT). Se davvero non accettano nessun compromesso, puoi rifiutare l'offerta - non è illegale per loro ritirare la proposta, purtroppo, ma almeno non avrai firmato qualcosa che ti stringe le mani.
Se vuoi garanzie maggiori, potresti consultare un avvocato del lavoro (non costa troppo per una consulenza breve), ma sinceramente prima proverei a contrattare direttamente con loro. Le startup assumono perché hanno bisogno di te, quindi hanno incentivo a trovare un accordo.